package com.xingchi.tornado.dict.service;

import com.xingchi.tornado.dict.model.dto.DictItemAddDTO;
import com.xingchi.tornado.dict.model.dto.DictItemDTO;
import com.xingchi.tornado.dict.model.dto.DictItemEditDTO;
import com.xingchi.tornado.dict.model.dto.DictItemQueryDTO;
import com.xingchi.tornado.mybatisplus.service.BasePlusService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xingchi
 * @date 2025-05-27 15:24
 */
public interface DictItemService extends BasePlusService<DictItemDTO, DictItemQueryDTO> {

    /**
     * 根据分组code删除分组项
     *
     * @param groupCode  分组code
     * @return 是否删除成功
     */
    Boolean deleteByGroupCode(String groupCode);

    /**
     * 根据分组code删除分组项
     *
     * @param groupCodes  分组code
     * @return 是否删除成功
     */
    Boolean deleteByGroupCode(List<String> groupCodes);

    /**
     * 修改分组项的分组code
     *
     * @param oldCode  旧分组code
     * @param newCode  新分组code
     * @return 是否修改成功
     */
    Boolean updateGroupCode(String oldCode, String newCode);

    /**
     * 添加字典项
     *
     * @param dictItem  字典项
     * @return          字典项id
     */
    Long addItem(DictItemAddDTO dictItem);

    /**
     * 批量添加字典项
     *
     * @param dictItem  字典项
     * @return          字典项id
     */
    void addItemBatch(List<DictItemAddDTO> dictItem);

    /**
     * 更新字典项
     *
     * @param dictItem  字典项
     * @return          是否更新成功
     */
    Boolean updateItem(DictItemEditDTO dictItem);

    /**
     * 删除字典项
     *
     * @param id  字典项id
     * @return    是否删除成功
     */
    Boolean deleteItem(Long id);
}
